// 判断是否是空字符串
let isEmptyString = (str) => {
  return str === '' || str.trim() === ''
}

// 获得args的数据类型
let getTypeOfParam = (args) => {
  // [object String]
  return Object.prototype.toString.call(args).slice(8, -1)
}

// 判断args是否是字符串
let isString = (args) => {
  return Object.prototype.toString.call(args).slice(8, -1) === 'String'
}

// 字符串反转
let reverseString = (str) => {
  if (!isString(str)) {
    return console.log('请传递字符串参数')
  }
  if (isEmptyString(str)) {
    return ''
  }
  return str.split('').reverse().join('')
}

// 获得url中的查询参数
let getQuery = (url) => {
  // 'http://146.56.230.35:3007/users/login?username=admin&mobile=13988881111&password=123456&id=1&age=20&gender=女'
  let query = {}
  if (isEmptyString(url)) {
    console.log('url不能是空字符串')
    return query
  }
  let index = url.indexOf('?')
  if (index === -1) {
    console.log('当前url中没有查询参数')
    return query
  }
  let queryString = url.substring(index + 1)
  if (isEmptyString(queryString)) {
    console.log('当前url中没有查询参数')
    return query
  }
  // ['username=admin','mobile=13988881111','password=123456','id=1','age=20','gender=女']
  let arr = queryString.split('&')
  arr.forEach((item) => {
    let list = item.split('=')
    console.log(list)
    // 属性名称
    let property = list[0]
    // 属性值
    let value = list[1]
    // 把字符串转换为数字，如果转换不成功说明value是字符串，value不是数字字符串
    let rt = Number(value)
    // 把数字字符串转换为数字
    if (!Number.isNaN(rt) && property !== 'password' && property !== 'mobile') {
      value = rt
    }
    // 把属性和属性对应的值赋值给对象query
    query[property] = value
  })
  return query
}
